It is known that communications networks are constituted by a plurality of terminals for stations, connected to one another by a transmission link that includes a transmission medium, which by way of example may be constituted of optical fibers, in the case of an FDDI-type network. A computer connected to such a network is considered to be a terminal.
Many modern remote information processing and telematics networks function by the same reference model, known as the OSI reference model. Other networks may also operate by different models, which however remain similar to the OSI reference model in terms of the definition of the architecture of these networks in the form of standardized layers (TCP-IP networks are one example of this). Hence in the OSI model, the architecture is constituted by a stack of seven activity layers, with the lowest layer (layer 1) corresponding to the physical transmission of signals among the various systems, through the physical interconnection medium (optical fibers), while the uppermost layer (layer 7) corresponds to the functions performed by the applications programs and the users of the remote information processing network in question.
The OSI model also defines the concepts by which the function of each layer can be described. Devices are also known that define the relations among adjacent layers, such as the one by AT&T known as "STREAMS" and defined more precisely in the documents mentioned hereinafter.
In the industrial development of networks, the trend is to use more and more terminals, which has led to the development of programmed communications processors in the very heart of the computers, which by performing some of the handling of the communications of the computer with the other stations of the network, make it possible to reduce the load on the central processing unit of the computer.
Moreover, given the extremely rapid development of communications networks and of information processing systems, there is a need for computers of different types, using different operating systems, to be connected to the same network.
The purpose of a communications processor, which may also be called a data transmission system or gateway connection device, is to adapt the conditions of transmission of the information on the bus of a computer to the conditions of transmission in the network, where these transmission conditions are completely different. Moreover, this communications processor makes dialog possible among the operating systems of different computers. In particular, it enables dialog between the various communications layers of the operating system of a first computer and the various communications layers of the operating systems of different computers connected to the same network.
Accordingly, in the very heart of its operating system, the communications processor must include a code of communications layers that enables it to carry out dialog both with the operating system of the computer to which it is connected and with the other computers connected to the network, which for example is of the FDDI type.
An example of such communications processor, also known as a data transmission system, is described hereinafter.
Such a communications processor, known as NCC, makes it possible to assure handling of the data transfer between a host computer HOST, which is provided with an internal bus PSB and whose operating system is designated by the abbreviation OS, and a network RE, for example of the FDDI type. By way of example, the bus PSB is a bus known as MultibusII (trademark registered by Intel), standardized under IEEE (Institute of Electrical and Electronic Engineers) Standard 1296.
The NCC communications processor includes three essential parts, which are as follows:
The first part, called GPU (for General Purpose Unit), is for example the model described in U.S. patent application Ser. No. 07/913,477, filed Jul. 15, 1992, entitled "Universal Device for Coupling a Computer Bus to a Controller for a Group of Peripherals", now U.S. Pat. No. 5,367,646. This part is provided with an operating system, for example, of the type described in U.S. patent application Ser. No. 07/913,366, filed on Jul. 15, 1992, entitled "Operating System for Universal Device for Coupling a Computer Bus to a Specific Link of a Network", now U.S. Pat. No. 5,455,950. The purpose of this GPU part is to assure on the one hand the initialization of the entire NCC coupler, and on the other to assure the dialog with the host computer by way of the bus PSB, while meeting the standards for use of this bus and conforming to the nature of the operating system OS of the host computer. Moreover, the GPU part assures the physical transfer of the data between the bus PSB and the second part or adaptor device DEA, which is directly connected to the network RE. The function of this part DEA is described below. PA1 The hardware of the part DEA is, for example, of the type described French Patent 2 650 412, entitled "dispositif passerelle de connexion d'un bus d'ordinateur a un reseau fibre optique en forme d'anneau" (gateway device for connecting a computer bus to a fiber optical network in the form of a ring and the software is of the type described in French Patent Application 92 11054. This DEA part assures the physical transmission of the data between the GPU part and the network RE, as well as the physical connection to the network. PA1 The third part, called PPA, is in fact a communications coprocessor intended, more particularly, for handling the various telecommunications layers of the OSI model, or of the TCP-IP model. Both with respect to the OSI model and the TCP-IP model, the part PPA assures the handling of the communications layers C.sub.4, C.sub.3, C.sub.2, or in other words the transport, network and data link layers, respectively. PA1 UNIX System V, release 4--STREAMS Programmer's Guide, AT&T Issue No. 1. PA1 UNIX System V, release 3.2--STREAMS Programmer's Guide, AT&T (ISBN: 0-13-944810-1): 1989 PA1 the communications layer code, unmodified and compiled in the internal language of the computer; PA1 the basic services for the virtual core, which are connected to the code; PA1 libraries for access to the code for all the test applications of this code .
Communications layers C.sub.2 -C.sub.4 communicate with one another by way of primitive functions that enable two neighboring layers to carry out a dialog between them. Thus the two layers C.sub.2 and C.sub.3 communicate between one another by way of the set of functions ST.sub.2, while the layers C.sub.3 and C.sub.4 communicate by way of the set of functions ST.sub.3. In addition, C.sub.4 communicates with the outer world, for example with external applications, by way of an interface SH.
In a preferred embodiment of the invention, the sets of functions ST.sub.2, ST.sub.3, SH are functions known in current practice as STREAMS. These standard functions are defined for example in the following documents:
In the exemplary embodiment shown in FIG. 1, when the host computer sends a message to the network RE, or when a message originates in the network RE, the message passes through the layers C.sub.2 -C.sub.4, by way of a FIFO FF.sub.1, while this message is transmitted in the first case to the adaptor device DEA or in the second case to the GPU, from the part PPA by way of the FIFO memory FF.sub.2. When a request for connection, originating in the host computer, is to be made, the request passes by way of the interface SH. Once the connection is made, whether it involves sending messages to all or some of the stations connected to the network, these messages pass directly into the layers C.sub.4 -C.sub.2.
The set constituted by the communications layers C.sub.2 -C.sub.4 and by the various functions ST.sub.2, ST.sub.3 and SH, as well as by the associated operating system (that of the part PPA), makes up what is known as a communications layer code CC, or networking code, or communications core.
In current practice, when communications processors such as NCC are checked out, it is necessary to wait until the hardware support is achieved before the networking code can be checked out, which results in a loss of time in the development process.